home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Development Platforms / Apple II / Essentials / MPW IIGS Interfaces / PIIGSIncludes / NoteSeq.p < prev    next >
Encoding:
Text File  |  1990-04-03  |  2.6 KB  |  91 lines  |  [TEXT/MPS ]

  1. {********************************************
  2. ; File: NoteSeq.p
  3. ;
  4. ;
  5. ; Copyright Apple Computer, Inc. 1986-90
  6. ; All Rights Reserved
  7. ;
  8. ********************************************}
  9.  
  10. UNIT NOTESEQ;
  11. INTERFACE
  12. USES TYPES;
  13. CONST
  14.  
  15. { Commands }
  16. pitchBend = $0;
  17. tempo = $00000001;
  18. turnNotesOff = $00000002;
  19. jump = $00000003;
  20. setVibratoDepth = $00000004;
  21. programChange = $00000005;
  22. setRegister = $00000006;
  23. ifGo = $00000007;
  24. incRegister = $00000008;
  25. decRegister = $00000009;
  26. midiNoteOff = $0000000A;
  27. midiNoteOn = $0000000B;
  28. midiPolyKey = $0000000C;
  29. midiCtlChange = $0000000D;
  30. midiProgChange = $0000000E;
  31. midiChnlPress = $0000000F;
  32. midiPitchBend = $00000010;
  33. midiSelChnlMode = $00000011;
  34. midiSysExclusive = $00000012;
  35. midiSysCommon = $00000013;
  36. midiSysRealTime = $00000014;
  37. midiSetSysExl = $00000015;
  38. callRoutine = $0000001E;
  39.  
  40. { Mask Values }
  41. commandMask = $0000007F;
  42. volumeMask = $0000007F;
  43. chord = $00000080;
  44. val1Mask = $00007F00;
  45. toneMask = $00007F00;
  46. noteMask = $00008000;
  47. lByte = $00FF0000;  { meaning depends on midi command }
  48. durationMask = $07FF0000;
  49. trackMask = $78000000;
  50. delayMask = $80000000;
  51. hByte = $FF000000;
  52.  
  53. { Error Codes }
  54. noRoomMidiErr = $1A00;
  55. noCommandErr = $1A01;  { can't understand the current SeqItem }
  56. noRoomErr = $1A02;  { sequence is more than twelve levels deep }
  57. startedErr = $1A03;  { Note Sequencer is already started }
  58. noNoteErr = $1A04;  { can't find the note to be turned off by the current SeqItem }
  59. noStartErr = $1A05;  { Note Sequencer not started yet }
  60. instBndsErr = $1A06;  { Instrument number out of Instrument boundary range }
  61. nsWrongVer = $1A07;  { incompatible versions of NoteSequencer and NoteSynthesizer }
  62. TYPE
  63. LocRecHndl = ^LocRecPtr;
  64. LocRecPtr = ^LocRec;
  65. LocRec = RECORD
  66.     curPhraseItem : Integer;
  67.     curPattItem : Integer;
  68.     curLevel : Integer;
  69. END;
  70. FUNCTION ClearIncr  : Integer ;
  71. FUNCTION GetLoc  : LocRec ;
  72. FUNCTION GetTimer  : Integer ;
  73. PROCEDURE SeqAllNotesOff   ;
  74. PROCEDURE SeqBootInit   ;
  75. PROCEDURE SeqReset   ;
  76. PROCEDURE SeqShutDown   ;
  77. PROCEDURE SeqStartUp ( dPageAddr:Integer; mode:Integer; updateRate:Integer; increment:Integer)  ;
  78. FUNCTION SeqStatus  : Boolean ;
  79. FUNCTION SeqVersion  : Integer ;
  80. PROCEDURE SetIncr ( increment:Integer)  ;
  81. PROCEDURE SetInstTable ( instTable:Handle)  ;
  82. PROCEDURE SetTrkInfo ( priority:Integer; instIndex:Integer; trackNum:Integer)  ;
  83. PROCEDURE StartInts   ;
  84. PROCEDURE StartSeq ( errHndlrRoutine:VoidProcPtr; compRoutine:VoidProcPtr; sequence:Handle)  ;
  85. PROCEDURE StartSeqRel ( errHandlerPtr:ProcPtr; compRoutine:ProcPtr; sequence:Handle)  ;
  86. PROCEDURE StepSeq   ;
  87. PROCEDURE StopInts   ;
  88. PROCEDURE StopSeq ( next:Integer)  ;
  89. IMPLEMENTATION
  90. END.
  91.